The present invention relates to the color imaging arts. It finds particular application in digital color image copiers and will be described with particular reference thereto. It is to be appreciated, however, that the invention is applicable in other digital image processing applications (both color and monochrome) such as digital color scanners, printers, fax machines, plotters and the like, and in other environments and applications.
The generation of color documents can be thought of as a two-step process: first, a color image is generated by scanning an original document with a color image input terminal or scanner or, alternatively, creating a color image on a work station operated in accordance with a color image creation program; and second, printing the color image with a color printer in accordance with the colors defined by the scanner or computer generated image.
In a scanner, a color document is scanned line by line to acquire a full image of the document. The full image is represented as a two-dimensional data set of pixel information. The data set consists of line data in one dimension and column data in the other dimension. Due to the rastering motion of the particular input device in the scanner, a line of data is acquired relatively quickly. In contradistinction, each column of data, which is perpendicular to the line of data, is acquired relatively slowly. Accordingly, the axis of the image or acquired data set that is parallel to each line of data is called the fast-scan direction. Analogously, the axis of the image or acquired data set that is parallel to each column of data is called the slow-scan direction.
Scanner output is commonly transformed to a color space of tristimulus values, i.e., RGB (red-green-blue). Usually, these values are linearly transformed into standard XYZ coordinates of CIE color space, or a corrected transform of those values. An example of a CIE color space is the luminance-chrominance space termed CIE 1976 L*a*b* (CIELAB), where L* is lightness value, a* is a redness-greenness value, and b* is a yellowness-blueness value. These tristimulus values, which are essentially defined at the user interface, are independent of any particular device. Accordingly, the tristimulus information is referred to as being "device independent".
Printers have an output which can be defined as existing in a color space called CMYK which stands for Cyan, Magenta, Yellow, and Key or black. The CMYK color space is uniquely defined for the printer by its capabilities and colorants. Printers operate by the addition of multiple layers of ink or colorants. The response of a printer tends to be relatively non-linear. These colors are defined for a particular device, and accordingly, reference is made to the information as being "device dependent". While a printer receives information in a device-independent color space, it must convert that information to print in a device-dependent color space, which reflects the gamut or possible range of colors of the printer.
In a digital color copier having both a scanner and a printer, it is often desirable to electronically rotate an inputted image 180.degree. before printing. However, such rotation provides many memory resource and allocation problems.
In a conventional method of 180.degree. rotation, a dedicated contiguous page buffer must be created to store the rotated image data. To perform the rotation, the first pixel of line 1 of the data is transferred to the last pixel of the last line of the page buffer. Then, the second pixel of line one is transferred to the second to last pixel of the last line of the page buffer. The process is continued until last pixel of the last line is transferred to the first pixel of line 1 of the page buffer. The process is done by random addressing to memory which does not allow direct memory access (DMA) bursting in multi-master bus structures. To create the rotated image, a user must wait until the last pixel is read and written into the page buffer. Because of this, all operations must be done in an uncompressed format. Compression may be done only after the rotated image is written to the page buffer. On a 11.times.17 inch image at 1200.times.600 pixels, over 16.0 Megabytes of contiguous memory space must be dedicated as a page buffer. This is a major problem for software management of video memory in digital image processing system. Further, conventional rotation requires complicated page buffer address algorithms.
The present invention provides a new and improved method and apparatus for rotating a digital image which overcomes the above-referenced problems and others.